import Vue from 'vue'
import axios from 'axios'
import router from '../router/index.js'
import {
	getToken,
	removeToken,
	removeID
} from './localData.js'
//axios.defaults.baseURL = 'http://127.0.0.1:3000'
//在线服务器
axios.defaults.baseURL = 'http://157.122.54.189:9083'

//添加请求拦截器		axios发送请求前自动调用执行
axios.interceptors.request.use(
	//config请求时的配置
	(config) => {
		const token = getToken();
		
/* 		const tokenUrl = /user_unfollow|user_follow/;
		if (tokenUrl.test(config.url) && !token) {
			Vue.prototype.$toast.fail("请先登录！")
			return;
		} */
		
		// 在发送请求之前做些什么
		//封装拦截器请求头的token字段
		if (token) {
			config.headers.Authorization = token;
		}
		//返回修改后的config给axios
		return config;
	},
	(error) => {
		// 对请求错误做些什么	表示失败了把error传递给catch()
		return Promise.reject(error);
	});

axios.interceptors.response.use(
	//服务器响应数据后，axios 会自动调用的函数, response
	(response) => {
		if(response.data.message === "用户信息验证失败"){
			removeToken();
			removeID();
			
			//提示弹窗
			Vue.prototype.$dialog.confirm({
				title: '请先登录',
				message: '需要登录后操作',
			})
			.then(() => {
				const formUrl = location.href;
				router.push({name: 'login' , params: { formUrl }})
			})
			
			.catch(() => {})
		}
		
		return response;
	},
	(error) => {
		// 对请求错误做些什么	表示失败了把error传递给catch()
		Vue.prototype.$toast.fail("网络异常")
		return Promise.reject(error);
	});


export default axios